/*
给定一个大小为 n 的数组 nums ，返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的，并且给定的数组总是存在多数元素。
 */
struct Solution {}
impl Solution {
  pub fn majority_element(nums: Vec<i32>) -> i32 {
      let mut res = nums[0];
      let mut count = 0;
      for n in nums {
        if count == 0 {
          res = n;
        }
        if n == res {
          count += 1;
        } else {
          count -= 1;
        }
        // println!("n={} c={}", nums[n], count);
      }
      res
  }
}

pub fn main() {
    let nums = vec![1,2,2];
    let res = Solution::majority_element(nums);
    println!("=== {}", res);
}
